package service;

import entity.db.CitationTextDB;
import entity.db.ReferencestableDB;
import entity.text.PaperEntity;

import java.io.File;
import java.util.List;
import java.util.Map;

public interface CitationService {

    /**
     * 获取“抽象论证”引用链的邻接表
     * @return
     */
    public List<List<Object>> getArgumentChainCitationAdjacency();

    /**
     * 根据社区ID获取引用链
     * @param communityid
     * @return
     */
    public List<ReferencestableDB> getCitationAdjacencyBycommunityid(int communityid);

    /**
     * 根据文章ID获取文件名
     * @return  k：id，v：文件码
     */
    public Map<String, String> getFileNameByIDs(List<String> ids);

    /**
     * 从本地磁盘读取文件，封装成file，返回
     * @param file
     * @return
     */
    public PaperEntity readPaperFromFile(File file);

    /**
     * 抽取引文
     * @param paperEntity
     * @param citationIndex
     * @return
     */
    public List<String> extractorCitation(PaperEntity paperEntity, String citationIndex);

    /**
     * 获取引文信息
     * @return
     */
    public Map<String, List<String>> getCitationText();

    /**
     * 批量插入引文信息
     * @param citationTextList
     */
    public boolean insertCitationText(List<CitationTextDB> citationTextList);

    /**
     * 过滤掉无效的名词短语
     */
    public void filterNounPhrase();
}
